package simulacao;

public class PoliticaRetaliacao {
	
	private boolean ativa;
	private int numeroRodadasPunicao;
	private int contador;
	private boolean tft;
	
	public PoliticaRetaliacao(int numeroRodadasPunicao){
		this.ativa = false;
		this.numeroRodadasPunicao = numeroRodadasPunicao;
		this.contador = 0;
	}
	
	public PoliticaRetaliacao(int numeroRodadasPunicao, boolean tft){
		this.ativa = false;
		this.numeroRodadasPunicao = numeroRodadasPunicao;
		this.contador = 0;
		this.tft = tft;
	}
	
	public void retaliar(int estrategiaAdversario, boolean ativaAdv,  boolean incrementar){
		if(!ativa && estrategiaAdversario==1 && !ativaAdv){
			ativa = true;
			contador++;
		} else if (ativa && incrementar){
			if(!(estrategiaAdversario==1 && !ativaAdv)) contador++;
		}
		if(numeroRodadasPunicao >= 0 && contador > numeroRodadasPunicao){
			zerarRetaliacao();
		}
	}
	
	public void zerarRetaliacao(){
		this.ativa = false;
		this.contador = 0;
	}
	
	public boolean isAtiva(){
		return this.ativa;
	}

	public int getNumeroRodadasPunicao() {
		return numeroRodadasPunicao;
	}

	public void setNumeroRodadasPunicao(int numeroRodadasPunicao) {
		this.numeroRodadasPunicao = numeroRodadasPunicao;
	}

	/**
	 * @return the tft
	 */
	public boolean isTft() {
		return tft;
	}

	/**
	 * @param tft the tft to set
	 */
	public void setTft(boolean tft) {
		this.tft = tft;
	}
}
